package res

import (
	"github.com/emersion/go-webdav"
	"time"
)

type TFile struct {
	CreatedAt    time.Time `json:"created_at"`
	DomainId     string    `json:"domain_id"`
	DriveId      string    `json:"drive_id"`
	EncryptMode  string    `json:"encrypt_mode"`
	FileId       string    `json:"file_id"`
	Hidden       bool      `json:"hidden"`
	Name         string    `json:"name"`
	FileName     string    `json:"file_name"`
	ParentFileId string    `json:"parent_file_id"`
	Starred      string    `json:"starred"`
	Status       string    `json:"status"`
	Type         string    `json:"type"`
	UpdatedAt    time.Time `json:"updated_at"`
	Url          string    `json:"url"`
	Size         int64     `json:"size"`
	DownloadUrl  string    `json:"download_url"`
	MineType     string    `json:"mine_type"`
	ETag         string    `json:"e_tag"`
	Path         string
}

func (f TFile) ToFileInfo() *webdav.FileInfo {

	return &webdav.FileInfo{Path: f.Path, Size: f.Size, ModTime: f.UpdatedAt, IsDir: f.Type == "folder", MIMEType: f.MineType, ETag: f.ETag}
}

func (f TFile) IsDir() bool {
	return f.Type == "folder"
}
